package com.zuipin.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.zuipin.entity.DeliveryAddress;
import com.zuipin.util.Pagination;
import com.zuipin.vo.BackDeliveryAddressVo;

/**
 * DeliveryAddressMapper数据库操作接口类
 * 
 * @ClassName: DeliveryAddress
 * @author wuyicheng 
 * @time 2017年4月18日下午4:43:18 
 **/

@Mapper
public interface DeliveryAddressMapper {
	
	/**
	 * 查询（根据主键ID查询）
	 * 
	 * @author: wuyicheng 
	 * @date: 2017年4月18日下午4:50:31 
	 **/
	public DeliveryAddress findById(@Param("id") Long id);
	
	/** 
	 * 根据会员ID和系统ID
	 * 
	 * @Title: findByMemberIdAndSysId 
	 * @author: wuyicheng
	 * @date: 2017年4月25日上午9:38:55 
	 * @param deliveryAddress
	 * @param page
	 * @return
	 * @return: List<DeliveryAddress>
	 * @throws 
	 */
	public List<DeliveryAddress> findByMemberIdAndSysId(@Param("memberId") Long memberId, @Param("sysId") Long sysId);
	
	/**
	 * 删除（根据主键ID删除）
	 * 
	 * @author: wuyicheng 
	 * @date: 2017年4月18日下午4:50:31 
	 **/
	public int deleteByPrimaryKey(@Param("id") Long id);
	
	/**
	 * 添加 （匹配有值的字段）
	 * 
	 * @author: wuyicheng 
	 * @date: 2017年4月18日下午4:50:31 
	 **/
	public int insert(DeliveryAddress deliveryAddress);
	
	/**
	 * 修改 （匹配有值的字段）
	 * 
	 * @author: wuyicheng 
	 * @date: 2017年4月18日下午4:50:31 
	 **/
	public int update(DeliveryAddress deliveryAddress);
	
	public DeliveryAddress findDefault(Map<String, Object> map);
	
	/** 
	 *
	 * @Title: deleteAllDefultFlag 
	 * @author: wuyicheng
	 * @date: 2017年4月24日上午1:38:58 
	 * @param deliveryAddress
	 * @return: void
	 * @throws 
	 */
	public void deleteAllDefultFlag(DeliveryAddress deliveryAddress);
	
	/** 
	 * 根据会员ID和系统ID分页查询
	 * 
	 * @Title: findListByMemberIdAndSysId 
	 * @author: wuyicheng
	 * @date: 2017年4月25日上午9:38:55 
	 * @param deliveryAddress
	 * @param page
	 * @return
	 * @return: List<DeliveryAddress>
	 * @throws 
	 */
	public List<DeliveryAddress> findListByMemberIdAndSysId(@Param("da") DeliveryAddress deliveryAddress, @Param("page") Pagination page);
	
	/**
	 * 根据会员ID和系统ID查询(后台)会员收货地址Vo
	 * @param memberId
	 * @param sysId
	 * @return
	 */
	public List<BackDeliveryAddressVo> findListByMemberIdAndSysIdBack(@Param("memberId") Long memberId, @Param("sysId") Long sysId);
	
	/**
	 * （后台）修改收货地址~
	 */
	public int updateDeliveryAddressBack(@Param("bda") BackDeliveryAddressVo bda);
	
}